// 文件流的学习
// Created by FanGccU on 2025/6/22.
//

#include <iostream>
#include <fstream>
using namespace std;

// R：表示该字符串是原始字符串，不需要对特殊字符进行转义处理。
const string FILE_URI = R"(C:\Users\FanGccU\Documents\test\userInfo.txt)";

/**
 * 写入文件
 */
void writeFileFunc() {
    fstream file;
    // 以写入的方式打开文件，会将文件中存在的数据给清除
    file.open(FILE_URI, ios::out);
    if (!file) {
        cerr << "打开文件失败！" << endl;
        return;
    }
    file << "hello world!" << endl;
    file.close();
}

/**
 * 读取文件
 */
void readFileFunc() {
    fstream file;
    // 以读的方式打开文件
    file.open(FILE_URI, ios::in);
    if (!file) {
        cerr << "打开文件失败！" << endl;
        return;
    }
    string str;
    // 循环读取行中的数据，并将数据拷贝至str变量中
    while (getline(file, str)) {
        cout << str << endl;
    }
    // 关闭文件
    file.close();
}

/**
 * 追加文件内容
 */
void appendFileFunc() {
    fstream file;
    // 以追加内容的方式打开文件
    file.open(FILE_URI, ios::app);
    if (!file) {
        cerr << "打开文件失败！" << endl;
        return;
    }
    file << "email: helloworldzhoujing@163.com" << endl;
    file << "address: 深圳市龙华区民治街道" << endl;
    file.close();
}

int main(int argc, char *argv[]) {
    // readFileFunc();
    // writeFileFunc();
    appendFileFunc();
}
